This invention relates to a bit error rate monitor for a serial communication interface. More particularly, this invention relates to a bit error rate monitor that is programmable to allow adjustment by a user to accommodate different interfaces.
Monitoring the bit error rate is important in serial communications applications. For example, the telecommunications industry closely monitors bit error rates. At various thresholds of bit error rate, a communications device may be instructed to slow down its transmission rate (and to return to its full rate when the error rate decreases), to request maintenance, to shut down or enter an idle mode, and/or to activate an alternate or back-up device.
Different communications devices have different error threshold requirements (i.e., different monitoring period and threshold levels). For example, the 10-Gigabit Ethernet 64b/66b padded protocol specification calls for monitoring two bits out of every 66 bits, and sets an error threshold of 10−4 (one bit error in ten thousand bits), while most telecommunications applications have a base error threshold of 10−3 (one bit error in one thousand bits) during a 125 μs period (after which the total bit counter and the error counter are reset). At 10 Gb/s, each bit period is 0.1 ns, so that 125 μs, which is 125,000 ns, translates to 1,250,000 bits. Thus the base bit error rate (one error per 1,000 bits) for telecommunications applications at 10 Gb/s is 1,250 errors in 1,250,000 bits, or 12.5 errors in 12,500 bits. Such applications also frequently report errors at additional thresholds of 10−6 (one error per 1,000,000 bits) and 10−9 (one error per 1,000,000,000 bits). It should be noted that, as is commonly the case in digital systems, these thresholds are actually multiples of 2−10 (one-per-1,024) rather than multiples of 10−3 (one-per-1,000), so that one-per-million threshold is actually 2−20 (or one-per-1,048,576) and the one-per-billion threshold is actually 2−30 (or one-per-1,073,741,824).
Bit error rate monitors exist for such applications and protocols. However, unlike in standard telecommunications applications, in data communications applications the user may define his or her own threshold value and/or base measurement period. Moreover, when users implement designs in programmable logic devices, those designs may deviate from standard clock rates—even when implementing known standards—in order to meet requirements of a particular implementation. In such a case, the standard bit error monitors may not be appropriate. For example, instead of using the 10 Gb/s standard described above, a user may implement an 11 Gb/s data rate. At 11 Gb/s, a 10−3 bit error threshold would translate to 13.75 bit errors per 13,750 bits instead of 12.5 errors per 12,500 bits, with similar adjustments for 10−6 and 10−9 thresholds. In such a case, the standard bit error monitors may not be appropriate.